package newx.com.control
{
	public interface IList extends IControl
	{
		/**
		 * 列表项添加图标时沿y方向的便宜量
		 * */
		function get iconOffSizeY():int;		
		function set iconOffSizeY(value:int):void;
		
		/**
		 * 列表项添加图标时沿x方向的便宜量
		 * */
		function get iconOffSizeX():int;		
		function set iconOffSizeX(value:int):void;
		
		/**
		 * List控件数据源数组，格式为：[{label:"",data:null},{label:"",data:null}...]
		 */		
		function get dataProvider():Array;
		function set dataProvider(value:Array):void;
		
		/**
		 * 列表当前被选中项的索引值
		 * */
		function get currentSelect():int;
		function set currentSelect(value:int):void;
		
		/**
		 * 获取某一项数据
		 * @param value	单元格位置
		 * @return 项数据{label:"",data:null}
		 * 
		 */		
		function getItemByIndex(value:int):Object;
		
		/**
		 * 根据func方法查找项
		 * @param func	：用于查找的方法,该函数为true时getIndex返回值。
		 * @param pList	：自定义参数
		 * @return 		
		 * 
		 */		
		function getIndex(func:Function,pList:Array):int;
		
		/**
		 * 控制ComboBox控件下拉菜单显示的最大行数。
		 * */
		function get showCount():uint;
		function set showCount(value:uint):void;
		
		/**
		 * list控件皮肤，参数为代表皮肤元件的绑定类类名，格式为"列表项皮肤类名，纵向滚动条，横向滚动条"。
		 * */
		function get itemSkin():String;
		function set itemSkin(value:String):void;

		/**
		 * 添加一项
		 * @param value	项数据{label:"",data:null}
		 * @param index	添加项的位置，当为-1时，默认添加到最后
		 * 
		 */
		function addItem(value:Object,index:int = -1):void;

		/**
		 * 修改一项
		 * @param value 项数据{label:"",data:null}
		 * @param index 添加项的位置，当为-1时，默认添加到最后;
		 * 
		 */		
		function setItem(value:Object,index:int):void;
		
		/**
		 * 删除一项
		 * @param value	单元格位置
		 * 
		 */
		function removeItem(value:uint):void;
		
		/**
		 * 清空列表 
		 * dataProvider+文本框+icon(NxClip)
		 * 建议使用dataProvider直接提供新的数据源，也能达到清除多余条目的效果，且更高效
		*/
		function clearList():void;
		
		/**表格单元格文本的对齐方式（默认TextFieldAutoSize.LEFT）*/
		function get itemAlign():String;
		function set itemAlign(value:String):void;
		
//		/**强制程序绘制列表，列表会在添加到舞台时绘制，可以使用此方法强制绘制*/
//		function updateDisplay():void;
		
		/**是否锁定当前滚动条位置，锁定后，滚动条初始为0，每次滚动后停留在该位置，无论数据添加减少都不改变。*/
		function set isSliderLocked(value:Boolean):void;
		function get isSliderLocked():Boolean;
		
		/**
		 * 设置滚动条位置，此方法仅在滚动条未锁定的情况下起左右，
		 * 锁定情况下，滚动条初始为0，每次滚动后停留在该位置，无论数据添加减少都不改变。
		 * 取值区间[0,1]
		 **/
		function set sliderPerDis(value:Number):void;
		function get sliderPerDis():Number;
		
		/**
		 * 控件垂直滚动条皮肤。
		 * */		
		function get vScrollSkin():String;
		function set vScrollSkin(val:String):void;
		
		/**
		 * 控件水平滚动条皮肤。
		 * */		
		function get hScrollSkin():String;
		function set hScrollSkin(val:String):void;
	}
}